package delphorm.web.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.util.FileCopyUtils;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import delphorm.entite.questionnaire.ValeurFichier;
import delphorm.service.questionnaire.IQuestionnaire;

public class TelechargerValeurFichier implements Controller {

	IQuestionnaire serviceQuestionnaire;

	public IQuestionnaire getServiceQuestionnaire() {
		return serviceQuestionnaire;
	}

	public void setServiceQuestionnaire(IQuestionnaire serviceQuestionnaire) {
		this.serviceQuestionnaire = serviceQuestionnaire;
	}

	public ModelAndView handleRequest(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		// récupère l'id du fichier
		String param = request.getParameter("id");
		// TODO exception si pas de parametres
		ValeurFichier valFichier = serviceQuestionnaire
				.getValeurFichier(new Long(param));
		String mimetype = request.getSession().getServletContext().getMimeType(
				valFichier.getNomFichier());
		response.setContentType(mimetype);
		response.setContentLength(valFichier.getFichier().length);
		response.setHeader("Content-Disposition", "attachment; filename=\""
				+ valFichier.getFilename() + "\"");
		FileCopyUtils.copy(valFichier.getFichier(), response.getOutputStream());
		return null;
	}

}
